From: Owen W. Taylor Date: Mon, 31 Jan 2011 01:25:00 +0000 (-0500) Subject: Don't check for Workspaces.WindowClone for window drops X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~9094 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=3c593fc056ea201ccbff3a747b66453e5ba815cc;p=gnome-shell.git Don't check for Workspaces.WindowClone for window drops When checking the type of a DND source, instead of checking 'instanceof Workspaces.WindowClone' accept any actor with realWindow and metaWindow properties. This will be useful to support a separate type of actor dragged from workspace thumbnails. https://bugzilla.gnome.org/show_bug.cgi?id=640996 --- diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 4628a5a7a..caec10f37 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -632,7 +632,7 @@ AppIconMenu.prototype = { }, _findMetaWindowForActor: function (actor) { - if (actor._delegate instanceof Workspace.WindowClone) + if (actor._delegate.metaWindow) return actor._delegate.metaWindow; else if (actor.get_meta_window) return actor.get_meta_window(); diff --git a/js/ui/dash.js b/js/ui/dash.js index 7e6ce1d53..0ddae0b2c 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -54,7 +54,7 @@ RemoveFavoriteIcon.prototype = { if (source instanceof AppDisplay.AppWellIcon) { let appSystem = Shell.AppSystem.get_default(); app = appSystem.get_app(source.getId()); - } else if (source instanceof Workspace.WindowClone) { + } else if (source.metaWindow) { let tracker = Shell.WindowTracker.get_default(); app = tracker.get_window_app(source.metaWindow); } @@ -148,7 +148,7 @@ Dash.prototype = { let app = null; if (dragEvent.source instanceof AppDisplay.AppWellIcon) app = this._appSystem.get_app(dragEvent.source.getId()); - else if (dragEvent.source instanceof Workspace.WindowClone) + else if (dragEvent.source.metaWindow) app = this._tracker.get_window_app(dragEvent.source.metaWindow); else return DND.DragMotionResult.CONTINUE; @@ -265,7 +265,7 @@ Dash.prototype = { let app = null; if (source instanceof AppDisplay.AppWellIcon) app = this._appSystem.get_app(source.getId()); - else if (source instanceof Workspace.WindowClone) + else if (source.metaWindow) app = this._tracker.get_window_app(source.metaWindow); // Don't allow favoriting of transient apps @@ -316,7 +316,7 @@ Dash.prototype = { let app = null; if (source instanceof AppDisplay.AppWellIcon) { app = this._appSystem.get_app(source.getId()); - } else if (source instanceof Workspace.WindowClone) { + } else if (source.metaWindow) { app = this._tracker.get_window_app(source.metaWindow); } diff --git a/js/ui/workspace.js b/js/ui/workspace.js index 09faf91de..0241213c1 100644 --- a/js/ui/workspace.js +++ b/js/ui/workspace.js @@ -1412,7 +1412,7 @@ Workspace.prototype = { }, acceptDrop : function(source, actor, x, y, time) { - if (source instanceof WindowClone) { + if (source.realWindow) { let win = source.realWindow; if (this._isMyWindow(win)) return false; diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 1fe540905..ac6096f63 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -264,7 +264,7 @@ WorkspacesView.prototype = { }, _handleDragOverNewWorkspace: function(source, dropActor, x, y, time) { - if (source instanceof Workspace.WindowClone) + if (source.realWindow) return DND.DragMotionResult.MOVE_DROP; if (source.shellWorkspaceLaunch) return DND.DragMotionResult.COPY_DROP;